Cyclic Redundancy Codes (CRCs) are widely used in telecommunication and networking to ensure data integrity. For example, every Ethernet packet is transmitted with an appended CRC-32 code (a 32-bit CRC code). Circuits for performing cyclic redundancy checks have been implemented serially using a shift register. However, this approach is insufficient to keep up with current data rates. In addition, while there are several CRC circuit designs for data rates up to 100 Gb/s, these generally involve using a relatively narrow data bus with input width of no more than 512 bits.